首页 > 试题广场 >

跳台阶

[编程题]跳台阶
  • 热度指数:14943 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

数据范围:
要求:时间复杂度: ,空间复杂度:

输入描述:
本题输入仅一行,即一个整数 n


输出描述:
输出跳上 n 级台阶有多少种跳法
示例1

输入

2

输出

2

说明

青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2        
示例2

输入

7

输出

21
a, b = 1, 1
n = int(input())
for _ in range(n):
    a, b = b, a + b
print(a)

发表于 2022-09-13 14:42:31 回复(0)
def solution(n):
    dp = [0]*(n+1)
    if n <=2 :
        return n
    dp[1] = 1
    dp[2] = 2
    for i in range(3,n+1):
        dp[i] = dp[i-1] + dp[i-2]
    return dp[n]
a = int(input())
print(solution(a))

发表于 2022-09-08 16:37:29 回复(0)
n = int(input())
l=[0,1]
for i in range(n):
    c = l[-1]+l[-2]
    l.append(c)
print(l[-1])

发表于 2022-08-29 22:09:51 回复(0)
#斐波那契数列求解方式
def jump(n):
    if n==1&nbs***bsp;n==2:
        return n
    else:
        #a为第一位数,b为第二位数,new为需输出的数
        a=1; b=2; c=0
        #循环n-2次
        for i in range(3, n+1):
            new = a + b
            a = b
            b = new
        return new
print(jump(int(input())))

发表于 2022-08-29 15:13:24 回复(0)
n = int(input())
a = 1
b = 2
if n==1:
    print(1)
elif n==2:
    print(2)
else:
    for i in range(2,n):
        new = a + b
        a = b
        b = new
    print(new)
        
发表于 2022-08-05 10:09:44 回复(0)
#f(n) = f(n-1)+f(n-2)

def fun(n):
    if n==1 or n==2:
        return n
    else:
        return fun(n-1)+fun(n-2)

发表于 2022-07-19 21:41:28 回复(0)
n=int(input())
if n>2:
    dp=[0 for i in range(n+1)]
    dp[1]=1
    dp[2]=2
    for i in range(3,n+1):
        dp[i]=dp[i-1]+dp[i-2]
    print(dp[-1])
elif n==0:
    print(0)
elif n==1:
    print(1)
elif n==2:
    print(2)

发表于 2022-06-06 22:12:17 回复(0)
memp={}
def L(num):
    
    if num==1&nbs***bsp;num==0:
        return 1
    if num in memp:
        return memp[num]
    
    left=L(num-1)
    right=L(num-2)
    memp[num]=left+right
    return left+right

n=int(input())
print(L(n))

发表于 2022-05-09 13:38:53 回复(0)